package com.zpb.framework.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zpb.framework.domain.ApiResult;
import com.zpb.framework.domain.dto.*;
import com.zpb.framework.domain.entity.User;
import com.zpb.framework.domain.vo.PageVo;
import com.zpb.framework.domain.vo.UserVo;
import com.zpb.framework.domain.vo.UserWithRoleVo;

/**
 * @Description:
 * @Author: zhaopengbo
 * @Date: 2025/9/10
 */
public interface UserService extends IService<User> {
    ApiResult<UserVo> queryCurrentUserInfo();

    ApiResult updateUserInfo(UserDto userDto);

    ApiResult register(RegisterDto registerDto);

    ApiResult<PageVo> getUserList(Integer pageNum, Integer pageSize, UserQueryDto userQueryDto);

    ApiResult addUser(UserAddDto userAddDto);

    ApiResult delUser(Long id);

    ApiResult<UserWithRoleVo> getUserWithRoleById(Long id);

    ApiResult updateUserById(UserUpdateDto userUpdateDto);
}
